package org.itheima.hello数据结构.树.二叉树数组表示;

public class 解析 {
    //用数组表示二叉树就是不用地址而用下标表示位置

    /*表示完美二叉树*/

//  若某节点的索引为 i
// ，则该节点的左子节点索引为 2i+1
// ，右子节点索引为 2i+2
//映射公式的角色相当于链表中的节点引用（指针）


    /*表示任意二叉树*/

    //完美二叉树是一个特例，在二叉树的中间层通常存在许多 None 。
    // 由于层序遍历序列并不包含这些 None ，因此我们无法仅凭该序列
    // 来推测 None 的数量和分布位置。这意味着存在多种二叉树结构都
    // 符合该层序遍历序列。

    //为了解决此问题，我们可以考虑在层序遍历序列中显式地写出所有 None 。
    // 这样处理后，层序遍历序列就可以唯一表示二叉树了



    /*优点与局限性*/

    //二叉树的数组表示主要有以下优点。
    //
    //数组存储在连续的内存空间中，对缓存友好，访问与遍历速度较快。
    //不需要存储指针，比较节省空间。
    //允许随机访问节点。
    //然而，数组表示也存在一些局限性。
    //
    //数组存储需要连续内存空间，因此不适合存储数据量过大的树。
    //增删节点需要通过数组插入与删除操作实现，效率较低。
    //当二叉树中存在大量 None 时，数组中包含的节点数据比重较低，空间利用率较低。
}
